Dalam Triton, satuan dasar eksekusi berpindah dari thread skalar CUDA ke Instance Program. Ini merupakan abstraksi dari blok thread GPU, di mana satu instance menangani blok vektorisasi elemen secara bersamaan.
1. Identitas Instance Program
Setiap unit eksekusi mendapatkan identitasnya melalui pid = tl.program_id(axis=0). Bayangkan sebuah Forklift Gudang (Instance Program) mengambil sebuah Palet (blok) berisi 128 kotak, dibandingkan dengan satu pekerja (thread CUDA) yang mengambil satu kotak.
2. Triton vs. Tensor PyTorch
Memahami kesenjangan semantik sangat penting untuk manajemen memori:
- Tensor PyTorch: Objek Python sisi host yang membungkus penyimpanan VRAM, stride, dan metadata.
- Tensor Triton: Objek tingkat kompiler yang mewakili nilai atau pointer yang terletak di register atau SRAM.
Objek Python yang menunjuk ke memori global yang kontinu.
Blok data 2D/1D di dalam register kompiler.
3. Sifat SPMD
Triton mengikuti pendekatan Program Tunggal, Data Banyak (SPMD) alur. Setiap instance program menjalankan persis sama kode. Perbedaan hanya terjadi ketika logika menggunakan pid untuk menghitung offset memori tertentu.